Skip to content

Device synchronization using pocketbase#370

Draft
Scriptbash wants to merge 31 commits intomainfrom
sync
Draft

Device synchronization using pocketbase#370
Scriptbash wants to merge 31 commits intomainfrom
sync

Conversation

@Scriptbash
Copy link
Owner

Adds the ability to mirror the Wispar database to the cloud using PocketBase.

  • If several devices contain the same data, the first device to sync will have its data added to PocketBase. The other devices will update their local sync IDs to match the cloud and avoid duplicates. Any data that is not already in PocketBase will be uploaded and synced on the other devices.

  • Subsequent syncs work on a most recent changes wins.

  • If the "Background syncing" option is enabled (on by default), changes will automatically sync when the user interacts with the app (add favorite, hide a publication, follow a journal, etc.) and when starting the app.

  • Cleans up the local database of duplicated journals.

  • Added more safeguards against inserting duplicate journals.

  • The following can be synced:

    • Articles (only favorites and hidden articles)
    • Journals
    • Saved queries
    • Feed filters
    • EZproxy known URLs
  • These will not sync:

    • Downloads
    • Title and abstract translations
    • Graphical abstracts
    • Settings
  • Users have the option to use Wispar as before (no sync) or use cloud syncing by either using the "Wispar Sync" server or by self-hosting PocketBase. Users can use the database schema to import the necessary tables into PocketBase.

  • Users have the ability to delete their cloud account. Doing so automatically wipes all their associated data from the server permanently, the app data on the device is kept intact.

Closes #248

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Multi-device synchronization of Wispar database

1 participant